package gi18n_lang

import (
	"context"
	"fmt"
	"github.com/gogf/gf/v2/frame/g"
	"github.com/gogf/gf/v2/i18n/gi18n"
)

var (
	I18nObj *gi18n.Manager
	tmlCtx  context.Context //临时上下文
)

func Init(ctx context.Context) {
	I18nObj = gi18n.New()
	lang := g.Cfg().MustGet(ctx, "system.lang").String()
	tmlCtx = gi18n.WithLanguage(ctx, lang)
}

func TranslateLang(ctx context.Context, language string) string {
	tmlCtx = gi18n.WithLanguage(ctx, language)
	translated := I18nObj.Translate(tmlCtx, `{#translate success}`)
	return translated
}

func Translate(text string) string {
	if I18nObj == nil || tmlCtx == nil {
		return fmt.Sprintf("Translation error: %s", text)
	}
	return I18nObj.Translate(tmlCtx, text)
}
